Method to create a composite RUI from multiple RUIs

ABSTRACT

A compositing device lessens a rendering/processing load for rendering devices by processing one or more sessions instead of requiring the rendering devices to do so. The compositing device is able to receive one or more sessions from one or more source devices and process the sessions either together or separately. Then, either a composited session or a selected session is sent to be displayed by a rendering device.

FIELD OF THE INVENTION

The present invention relates to the field of remote user interfaces.More specifically, the present invention relates to generating andutilizing a composite RUI from multiple RUIs.

BACKGROUND OF THE INVENTION

The number of electronic devices in people's homes is continuallyincreasing. Many years ago, homes only had a radio; then, a radio and atelevision. The number of devices has increased to the point where atypical home has several televisions, stereos, computers, video gameconsoles, mobile phones/devices, appliances and others. Furthermore,these devices are gaining intelligence so that they are able tocommunicate with each other.

The expansion of residential networks to include a multiplicity ofdevices that can share files asynchronously and connect to the Internetthrough residential gateways was facilitated by the de-facto standarduse of wired and wireless ethernet connectivity. Asynchronous sharingthen started to give way to buffered streaming of video as bandwidthavailability improved. This was closely followed by real time streaming.Networks employ quality of service to manage bandwidth resource andUniversal Plug and Play (UPnP) to perform discovery and compatibility ofcompressed video content. Video UPnP also defines remote user inputoperation like play, stop and rewind so that video control as well asvideo display is able to be performed remotely. Also, provisions weremade to support graphical transfer of a remote user interface, but noimplementations on the market have made use of this. UPnP allowed formany different standards of compressed video, but does not, however,certify that a client supported the relevant decoder. Digital LivingNetwork Alliance (DLNA) is a standards body formed to provide certifieddevice compatibility for a specific subset of UPnP implementations. Italso defined the role of media servers, renderers, adapters, players andcontrollers.

A standard, referred to as Remote User Interface (RUI or Remote UI) isbeing developed to allow devices to operate each other and provide theuser with a user interface that is configured appropriately for a devicebeing used to control another device. For example, a user interface fora 46″ wide television is not likely to appear properly on a mobile phonewhich has a display of 2″. The Remote UI standard is a web-basedprotocol and framework for remote user interface on UPnP Networks andthe Internet. The standard allows a UPnP-capable home network device toprovide its interface (display and control options) as a web page todisplay on any other device coupled to the home network.

There are no well defined and widely accepted UPnP implementations forgraphical RUI. One option, which has been backed by the UPnP Forum, is abrowser based implementation known as CEA2014. The network clientbrowser is considered to be heavy in flash, memory and/or processorrequirements (‘thick’ client), whereas the network server applicationperforms simple encapsulation of XML (‘thin’ server). In some situationsthis may be acceptable, like the case when rendering is performed by apersonal computer and the application is run on a small mobile device,or a low end processing device, like a network router.

However, in the case of the home network where the rendering is done bya high definition TV, a Blu-Ray® player, a picture frame or a gamingmachine, the use of a browser for RUI has some disadvantages. Firstly, abrowser adds to the already substantial memory requirements of therenderers and so for these cost sensitive consumer electronics devicesit may not be viable. Secondly, the processing speed requirements for aresponsive experience are not going to be provided by the current rangeof devices available. And thirdly, the browser interface lends itselfwell to mouse and keyboard control, but is not necessarily the idealformat for a limited button remote control.

Also, the home network is able to include graphics applications builtinto game machines, video players, dongles and intelligent remotes onthe low end, with cable boxes, cloud servers and multimedia PCs on thehigh end. To shoehorn all of these into one UPnP standard, it is clearthat reach will be limited. In some cases substantial effort ofrewriting or translation of the graphics application might be needed inorder to fit the browser framework.

Another example of a proposed RUI is being provided through the RVUalliance. The RVU alliance was initiated by DirectTV in order to providea pixel accurate remotely rendered version of their satellite decoderuser interface. Unlike the browser based RUI, RVU uses a low levelprotocol that manipulates the graphics card framebuffer layers moredirectly. Instead of the script type messages that CEA2014 uses, RVUbreaks up elements of the graphics into images that can be sentcompressed or uncompressed over the network to be composited in therenderer's screen buffers or off screen buffers as needed. Simple bitcommands are sent over the network to allow the images to be stretched,cut and alpha-blended on the renderer side. This type of RUI would beconsidered a thin network client and thick network server because mostof the computation effort would be with the application. Also, becausemost actions involve sending image data, this type of RUI uses a lot ofnetwork resources.

The advantage of RVU is that the low level graphics operations are ableto be supported by all graphics cards quite easily and is not directlydependent on the type of application to be able to function. However,sometimes performance is a key parameter in usability, and as such thenetwork load and network server performance could severely limit howuseful the protocol is. RVU is especially vulnerable where completescreen refreshes are needed often, like 3D rotations of a view. Abrowser approach could handle this more simply through scripts of simplerotation commands. Another similar limitation is when the application isproviding remote graphics to multiple renderers, and causes theapplication processor to run short of the necessary MIPS to performadequately.

SUMMARY OF THE INVENTION

A compositing device lessens a rendering/processing load for renderingdevices by processing one or more sessions instead of requiring therendering devices to do so. The compositing device is able to receiveone or more sessions from one or more source devices and process thesessions either together or separately. Then, either a compositedsession or a selected session is sent to be displayed by a renderingdevice.

In one aspect, a method of generating a composite session comprisesdiscovering a compositing device, generating one or more sessionsbetween one or more source devices and the compositing device,processing the one or more sessions by the compositing device andsending a processed session to a rendering device for the renderingdevice to render the processed session. The method further comprisesswitching the processed session to a second rendering device. The one ormore sessions are remote user interface sessions. The compositing deviceis discovered by the source device and the rendering device. Processingthe sessions includes generating a composite session by processing thesessions into a single composite session. A user is able to select thesingle composite session. A single session of the sessions is selectedby a user. A single session of the sessions is selected automaticallybased on network information and device information. The compositingdevice is selected from the group consisting of a personal computer, alaptop computer, a computer workstation, a server, a mainframe computer,a handheld computer, a personal digital assistant, a cellular/mobiletelephone, a smart appliance, a gaming console, a digital camera, adigital camcorder, a camera phone, an iPhone, an iPod®, a video player,a DVD writer/player, a television, a home entertainment system and anintelligent appliance.

In another aspect, a network of devices comprises a composite device forprocessing remote user interface data, one or more source devices forsending the remote user interface data to the composite device and oneor more rendering devices for rendering the remote user interface datareceived from the composite device. The composite device, the one ormore source devices and the one or more rendering devices are coupledthrough a network. A processed session is able to be switched between aplurality of the rendering devices. The remote user interface data isremote user interface sessions. The compositing device is discovered bythe one or more source devices and the one or more rendering devices.Processing the remote user interface data includes generating acomposite session by processing remote user interface sessions into asingle composite session. A user is able to select the single compositesession. A single session of the remote user interface data is selectedautomatically based on network information and device information.

In another aspect, a system programmed in a controller in a devicecomprises a session module for communicating one or more sessions withone or more source devices, a processing module for processing the oneor more sessions and a sending module for sending a processed session toa rendering device for the rendering device to render the processedsession. The session is a remote user interface session. Processing thesessions includes generating a composite session by processing thesessions into a single composite session. A user is able to select thesingle composite session. A single session of the sessions is selectedby a user. A single session of the sessions is selected automaticallybased on network information and device information.

In yet another aspect, a compositing device comprises a memory forstoring an application, the application for communicating one or moreremote user interface sessions with one or more source devices,processing the one or more remote user interface sessions and sending aprocessed remote user interface session to a rendering device for therendering device to render the processed remote user interface sessionand a processing component coupled to the memory, the processingcomponent for processing the application. The compositing device isdiscovered by the one or more source devices and the rendering device.Processing the remote user interface sessions includes generating acomposite session by processing the sessions into a single compositesession. A user is able to select the single composite session. A singlesession of the remote user interface sessions is selected by a user. Asingle session of the remote user interface sessions is selectedautomatically based on network information and device information.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a block diagram of a network of devices withoutimplementing a method of generating a composite RUI.

FIG. 2 illustrates a block diagram of a network of devices implementinga method of generating a composite RUI according to some embodiments.

FIG. 3 illustrates a block diagram of a network of devices implementinga method of generating a composite RUI according to some embodiments.

FIG. 4 illustrates a flowchart of a method of utilizing a compositingdevice according to some embodiments.

FIG. 5 illustrates a block diagram of an exemplary computing device togenerate a composite RUI according to some embodiments.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Processing multiple incoming Remote User Interface (RUI) sessions andcomposing them into a single user interface requires extensive resourcesand cannot be embedded into all RUI rendering devices; therefore, anaddition device is able to be utilized to perform such tasks.

A method and system to generate a composite RUI from multiple RUIs (orservices) to enable a means of selection to the user by takingindividual available “pages” and displaying them in such a way to givethe user a choice and a seemingly direct coupling to the source aredescribed herein. The method and system also present multiple RUIs forthe user to choose from by discovering available RUIs and/or otherinputs, compositing all of these RUIs together and exporting thecomposited RUI to another device through which the user is able tochoose.

To provide compatibility with Digital Living Network Alliance (DLNA), anew class of services is defined in DLNA: an RUI source, an RUI rendererand an RUI compositing device. The RUI compositing device composes RUIsinto a single user interface and serves the resulting user interface toa rendering device.

The RUI renderer detects through DLNA the presence of multiple RUIsources. The RUI renderer also detects through DLNA the presence of anRUI compositing device. The RUI renderer establishes a session to theRUI compositing device. The RUI compositing device subsequentlyestablishes a session to the multiple RUI sources and composes a singleuser interface from the multiple RUI sessions. The RUI compositingdevice serves the resulting user interface to the RUI renderer throughthe established session. When the RUI compositing device detects that itis not adding value any more (e.g. the user interface it generates iscomposed of a single RUI), the RUI compositing device will instruct theRUI renderer to start a direct RUI session with its associated RUIsource and request the RUI source to transition its RUI session to thenewly established session with the RUI renderer.

FIG. 1 illustrates a block diagram of a network of devices 100 withoutimplementing a method of generating a composite RUI. The network ofdevices 100 includes one or more gateway or source devices 102 coupledto a renderer (e.g. a television) 106. In some embodiments, the sourcedevices 102 and the renderer 106 are coupled directly, and in someembodiments, the source devices 102 and the renderer 106 are coupledthrough a network. The source devices 102 each establish separatesession 104 with the renderer 106. The load of processing and the memoryuse of the sessions 104 (e.g. three sessions) by the renderer 106 isable to slow down the renderer 106 causing an unenjoyable experience forthe user.

FIG. 2 illustrates a block diagram of a network of devices implementinga method of generating a composite RUI according to some embodiments.The network of devices 200 includes one or more gateway or sourcedevices 202 coupled to a compositing device 208 which is coupled to arenderer (e.g. a television) 206. In some embodiments, the sourcedevices 202, the compositing device 208 and the renderer 206 are coupleddirectly, and in some embodiments, the source devices 202, thecompositing device 208 and the renderer 206 are coupled through anetwork. The source devices 202 each establish a separate session 204with the compositing device 208. The compositing device 208 processeseach of the sessions 204. The compositing device 208 is then able toprovide a single session 210 to the renderer 206. In some embodiments,the single session 210 is the sessions 204 combined into one session210. In some embodiments, the renderer 206 automatically selects onesession 210 of the sessions 204 and renders only that one session 210.In some embodiments, the renderer 206 enables a user to select onesession 210 from the sessions 204 processed by the compositing device208.

FIG. 3 illustrates a block diagram of a network of devices implementinga method of generating a composite RUI according to some embodiments.The network of devices 300 includes one or more gateway or sourcedevices 302 coupled to a compositing device 308 which is coupled to afirst renderer (e.g. a television) 306 and a second renderer (e.g. amobile device) 312. In some embodiments, the source devices 302, thecompositing device 308, the first renderer 306 and the second renderer308 are coupled directly, and in some embodiments, the source devices302, the compositing device 308, the first renderer 306 and the secondrenderer 312 are coupled through a network. The network is able to beany type of network including, but not limited to, a LAN, a WAN, theInternet, a cellular network, a wireless network, a wired network and/orany combination thereof. The source devices 302 each establish aseparate session 304 with the compositing device 308. The compositingdevice 308 processes each of the sessions 304. The compositing device308 is able to send a session 310 to the first renderer 306 and/or thesecond renderer 312. For example, if a user is watching a video on atelevision and then wants the video transferred to his mobile device,the compositing device 308 is able to make the transfer seamlessly.Although only two renderer devices are described above, any number ofrenderer devices are able to be utilized. Further, although sourcedevices are described, a single source device is able to be included aswell.

FIG. 4 illustrates a flowchart of a method of utilizing a compositingdevice according to some embodiments. In the step 400, a compositingdevice is discovered. The discovery of the compositing device is by anyof the devices such as the source devices and the renderers. In the step402, one or more of the source devices generate a session with thecompositing device. In the step 404, the compositing device processesthe session(s). Processing the sessions is able to include processingthem individually or generating a composite session by processing themtogether. In the step 406, the compositing device sends a single sessionto a renderer. The single session is able to be selected by a user orautomatically sent based on network information, device information orany other basis. In the step 408, the renderer renders the session (e.g.displays a video on a television). In some embodiments, renderingincludes simply displaying a video on a device, and in some embodiments,rendering includes further processing of a video and then displaying thevideo. In the step 410, if it is requested that the session be switchedto another device, the composite device sends the session to anotherdevice. Although specific steps are described, in some embodiments,fewer or more steps are included, and/or the order of the steps is ableto be changed.

In some embodiments, the compositing is performed based on networklimitations and device limitations. For example, if it is detected thatthe network has significant traffic, the compositing device is able tobe utilized to provide additional memory and/or processing power.However, if it is detected that the network does not have much trafficand the renderer has sufficient ability to process a session, thecompositing device is not used (e.g. it is placed in a standby state).

FIG. 5 illustrates a block diagram of an exemplary computing device 500to generate a composite RUI according to some embodiments. The computingdevice 500 is able to be used to acquire, store, compute, communicateand/or display information. For example, the computing device 500 isable to receive, generate, store, and process RUI sessions. Thecomputing device 500 is also able to provide additional processing powerand memory to assist in other devices' processing. In general, ahardware structure suitable for implementing the computing device 500includes a network interface 502, a memory 504, a processor 506, I/Odevice(s) 508, a bus 510 and a storage device 512. The choice ofprocessor is not critical as long as a suitable processor withsufficient speed is chosen. The memory 504 is able to be anyconventional computer memory known in the art. The storage device 512 isable to include a hard drive, CDROM, CDRW, DVD, DVDRW, Blu-ray®, flashmemory card or any other storage device. The computing device 500 isable to include one or more network interfaces 502. An example of anetwork interface includes a network card connected to an Ethernet orother type of LAN. The I/O device(s) 508 are able to include one or moreof the following: keyboard, mouse, monitor, display, printer, modem,touchscreen, button interface and other devices. Compositingapplication(s) 530 used to perform the composite RUI generation methodare likely to be stored in the storage device 512 and memory 504 andprocessed as applications are typically processed. More or lesscomponents shown in FIG. 5 are able to be included in the computingdevice 500. In some embodiments, composite RUI generation methodhardware 520 is included. Although the computing device 500 in FIG. 5includes applications 530 and hardware 520, the composite RUI generationmethod is able to be implemented on a computing device in hardware,firmware, software or any combination thereof. For example, in someembodiments, the composite RUI generation method applications 530 areprogrammed in a memory and executed using a processor. In anotherexample, in some embodiments, the composite RUI generation methodhardware 520 is programmed in hardware logic including gatesspecifically designed to implement the composite RUI generation method.

In some embodiments, the composite RUI generation method application(s)530 include several applications and/or modules. As described herein,the modules are able to include a session module for communicating, suchas generating and/or receiving, one or more sessions from the one ormore source devices, a processing module for processing the one or moresessions and a sending module for sending a processed session to arendering device for the rendering device to render the processedsession. In some embodiments, the session module does not generate thesession but rather the session is generated by the source device. Insome embodiments, modules include one or more sub-modules as well. Insome embodiments, fewer or additional modules are able to be included.

Examples of suitable computing devices for the composite device, sourcedevice and rendering device include a personal computer, a laptopcomputer, a computer workstation, a server, a mainframe computer, ahandheld computer, a personal digital assistant, a cellular/mobiletelephone, a smart appliance, a gaming console, a digital camera, adigital camcorder, a camera phone, an iPod®/iPhone, a video player, aDVD writer/player, a Blu-ray® writer/player, a television, a homeentertainment system or any other suitable computing device. In someembodiments, a computing device is able to include intelligentappliances such as a refrigerator, a toaster, a toaster oven and amicrowave, where the appliances are able to process and/or presentinformation.

To utilize the compositing device, a user incorporates the compositingdevice in a network by coupling the compositing device to devices suchas source devices and rendering devices in the network. When sourcedevices attempt to establish a session with a rendering device, thesessions are established with the compositing device which is able toprocess the sessions. The processing is able to occur automatically, andthen the session is able to be passed on automatically or manuallydepending on the implementation. For example, the user is able tomanually select which session is sent to the rendering device. From auser's perspective, the user generally does not notice that thecompositing device is functioning aside from the rendering devicesfunctioning more efficiently with the processor load being shared withthe compositing device.

In operation, the compositing device processes sessions from sourcedevices and then sends a single session to rendering device(s). Thesessions are able to be processed together into a single compositesession or separately to allow a user to select which session to send tothe rendering device. The compositing device provides added processingpower and memory so that rendering devices are not overloaded with toomuch data to process which would cause them to slow down.

The devices implemented within the network described herein are able toimplement Digital Living Network Alliance (DLNA) standard as well.

A Method to Create a Composite RUI from Multiple RUIs

-   1. A method of generating a composite session comprising:    -   a. discovering a compositing device;    -   b. generating one or more sessions between one or more source        devices and the compositing device;    -   c. processing the one or more sessions by the compositing        device; and    -   d. sending a processed session to a rendering device for the        rendering device to render the processed session.-   2. The method of clause 1 further comprising switching the processed    session to a second rendering device.-   3. The method of clause 1 wherein the one or more sessions are    remote user interface sessions.-   4. The method of clause 1 wherein the compositing device is    discovered by the source device and the rendering device.-   5. The method of clause 1 wherein processing the sessions includes    generating a composite session by processing the sessions into a    single composite session.-   6. The method of clause 5 wherein a user is able to select the    single composite session.-   7. The method of clause 1 wherein a single session of the sessions    is selected by a user.-   8. The method of clause 1 wherein a single session of the sessions    is selected automatically based on network information and device    information.-   9. The method of clause 1 wherein the compositing device is selected    from the group consisting of a personal computer, a laptop computer,    a computer workstation, a server, a mainframe computer, a handheld    computer, a personal digital assistant, a cellular/mobile telephone,    a smart appliance, a gaming console, a digital camera, a digital    camcorder, a camera phone, an iPhone, an iPod®, a video player, a    DVD writer/player, a television, a home entertainment system and an    intelligent appliance.-   10. A network of devices comprising:    -   a. a composite device for processing remote user interface data;    -   b. one or more source devices for sending the remote user        interface data to the composite device; and    -   c. one or more rendering devices for rendering the remote user        interface data received from the composite device.-   11. The network of devices of clause 10 wherein the composite    device, the one or more source devices and the one or more rendering    devices are coupled through a network.-   12. The network of devices of clause 10 wherein a processed session    is able to be switched between a plurality of the rendering devices.-   13. The network of devices of clause 10 wherein the remote user    interface data is remote user interface sessions.-   14. The network of devices of clause 10 wherein the compositing    device is discovered by the one or more source devices and the one    or more rendering devices.-   15. The network of devices of clause 10 wherein processing the    remote user interface data includes generating a composite session    by processing remote user interface sessions into a single composite    session.-   16. The network of devices of clause 15 wherein a user is able to    select the single composite session.-   17. The network of devices of clause 10 wherein a single session of    the remote user interface data is selected automatically based on    network information and device information.-   18. A system programmed in a controller in a device comprising:    -   a. a session module for communicating one or more sessions with        one or more source devices;    -   b. a processing module for processing the one or more sessions;        and    -   c. a sending module for sending a processed session to a        rendering device for the rendering device to render the        processed session.-   19. The system of clause 18 wherein the session is a remote user    interface session.-   20. The system of clause 18 wherein processing the sessions includes    generating a composite session by processing the sessions into a    single composite session.-   21. The system of clause 20 wherein a user is able to select the    single composite session.-   22. The system of clause 18 wherein a single session of the sessions    is selected by a user.-   23. The system of clause 18 wherein a single session of the sessions    is selected automatically based on network information and device    information.-   24. A compositing device comprising:    -   a. a memory for storing an application, the application for:        -   i. communicating one or more remote user interface sessions            with one or more source devices;        -   ii. processing the one or more remote user interface            sessions; and        -   iii. sending a processed remote user interface session to a            rendering device for the rendering device to render the            processed remote user interface session; and    -   b. a processing component coupled to the memory, the processing        component for processing the application.-   25. The compositing device of clause 24 wherein the compositing    device is discovered by the one or more source devices and the    rendering device.-   26. The compositing device of clause 24 wherein processing the    remote user interface sessions includes generating a composite    session by processing the sessions into a single composite session.-   27. The compositing device of clause 26 wherein a user is able to    select the single composite session.-   28. The compositing device of clause 24 wherein a single session of    the remote user interface sessions is selected by a user.-   29. The compositing device of clause 24 wherein a single session of    the remote user interface sessions is selected automatically based    on network information and device information.

The present invention has been described in terms of specificembodiments incorporating details to facilitate the understanding ofprinciples of construction and operation of the invention. Suchreference herein to specific embodiments and details thereof is notintended to limit the scope of the claims appended hereto. It will bereadily apparent to one skilled in the art that other variousmodifications may be made in the embodiment chosen for illustrationwithout departing from the spirit and scope of the invention as definedby the claims.

What is claimed is:
 1. A method of generating a composite sessioncomprising: discovering a compositing device; generating one or moresessions between one or more source devices and the compositing device,wherein the one or more sessions comprise remote user interface data;processing the one or more sessions by the compositing device; andsending a processed session to a rendering device for the renderingdevice to render the processed session, wherein the compositing deviceis discovered by the one or more source devices and the renderingdevice, and wherein when the compositing device detects that the remoteuser interface data comprises a single remote user interface, thecompositing device instructs the rendering device to begin a directsession with an associated source device of the one or more sourcedevices.
 2. The method of claim 1 further comprising switching theprocessed session to a second rendering device.
 3. The method of claim 1wherein the one or more sessions are remote user interface sessions. 4.The method of claim 1, wherein processing the one or more sessionsincludes generating the composite session by processing the one or moresessions into a single composite session.
 5. The method of claim 4wherein a user is able to select the single composite session.
 6. Themethod of claim 1, wherein a single session of the one or more sessionsis selected by a user.
 7. The method of claim 1, wherein a singlesession of the one or more sessions is selected automatically based onnetwork information and device information.
 8. The method of claim 1,wherein the compositing device is selected from a group consisting of apersonal computer, a laptop computer, a computer workstation, a server,a mainframe computer, a handheld computer, a personal digital assistant,a cellular/mobile telephone, a smart appliance, a gaming console, adigital camera, a digital camcorder, a camera phone, an iPhone, aniPod®, a video player, a DVD writer/player, a television, a homeentertainment system and an intelligent appliance.
 9. A network ofdevices comprising: a composite device for processing remote userinterface data; one or more source devices for sending the remote userinterface data to the composite device; and one or more renderingdevices for rendering the remote user interface data received from thecomposite device, wherein processing the remote user interface dataincludes generating a composite session by processing remote userinterface sessions into a single composite session, and wherein when thecomposite device detects that the remote user interface data comprises asingle remote user interface, the composite device instructs the one ormore rendering devices to begin a direct remote user interface sessionwith their associated one or more source devices and requests the one ormore source devices to transition a remote user interface session to anewly established remote user interface session that directly connectsthe one or more rendering devices with their associated one or moresource devices.
 10. The network of devices of claim 9 wherein thecomposite device, the one or more source devices and the one or morerendering devices are coupled through a network.
 11. The network ofdevices of claim 9, wherein a processed session is able to be switchedbetween the one or more rendering devices.
 12. The network of devices ofclaim 9, wherein the remote user interface data is the remote userinterface sessions.
 13. The network of devices of claim 9, wherein thecomposite device is discovered by the one or more source devices and theone or more rendering devices.
 14. The network of devices of claim 9wherein a user is able to select the single composite session.
 15. Thenetwork of devices of claim 9 wherein a single session of the remoteuser interface data is selected automatically based on networkinformation and device information.
 16. A system programmed in acontroller in a device comprising: a session module configured forcommunicating a plurality of sessions with one or more source devices,wherein each of the plurality of sessions comprise remote user interfacedata; a processing module configured for processing the plurality ofsessions; and a sending module configured for sending processed sessionsto a rendering device for the rendering device to render the processedsessions, wherein processing the plurality of sessions includesgenerating a composite session by processing the plurality of sessionsinto a single composite session, and wherein when the device detectsthat the remote user interface data comprises a single remote userinterface, the device instructs the rendering device to begin a directsession with an associated source device of the one or more sourcedevices.
 17. The system of claim 16 wherein each of the plurality ofsessions is a remote user interface session.
 18. The system of claim 16wherein a user is able to select the single composite session.
 19. Thesystem of claim 16, wherein a single session of the plurality ofsessions is selected by a user.
 20. The system of claim 16, wherein asingle session of the plurality of sessions is selected automaticallybased on network information and device information.
 21. A compositingdevice comprising: a memory for storing an application, the applicationfor: communicating one or more remote user interface sessions with oneor more source devices, wherein the one or more remote user interfacesessions comprise remote user interface data; processing the one or moreremote user interface sessions; and sending a processed remote userinterface session to a rendering device for the rendering device torender the processed remote user interface session, wherein when thecompositing device detects that the remote user interface data comprisesa single remote user interface, the compositing device instructs therendering device to begin a direct remote user interface session with anassociated source device of the one or more source devices; and aprocessing component coupled to the memory, the processing component forprocessing the application.
 22. The compositing device of claim 21wherein the compositing device is discovered by the one or more sourcedevices and the rendering device.
 23. The compositing device of claim21, wherein processing the one or more remote user interface sessionsincludes generating a composite session by processing the sessions intoa single composite session.
 24. The compositing device of claim 23wherein a user is able to select the single composite session.
 25. Thecompositing device of claim 21, wherein a single session of the one ormore remote user interface sessions is selected by a user.